package org.wevil.enumu;

import lombok.Getter;

/**
 * 文章审核状态
 */
@Getter
public enum NewsStatusEnum {
    /** 待审核 -> 待发布， 待审核 -> 未通过 */
    WAIT_PUBLIC(1,"待审核"),
    /** 待发布 -> 已发布 */
    HAS_PUBLIC(2,"待发布"),
    /** 已发布 -> 已撤回 */
    ROLL_BACK(3,"已发布"),
    /** 已撤回 -> 待审核 */
    NO_PASS(4,"已撤回"),
    /** 未通过 -> 待审核 */
    WAIT_AUDIT(5,"未通过");

    private final Integer code;
    private final String value;

    NewsStatusEnum(Integer code, String value) {
        this.code = code;
        this.value = value;
    }

    /**
     * 根据code匹配枚举
     *
     * @author wanglei
     * @since 2023-11-23
     */
    public static NewsStatusEnum match(Integer code){
        for (NewsStatusEnum enu : NewsStatusEnum.values()) {
            if (enu.code.equals(code)) {
                return enu;
            }
        }
        return null;
    }

    /**
     * 通过key获取value
     *
     * @author wanglei
     * @since 2023/10/19
     * */
    public static String getValue(String key) {
        for (NewsStatusEnum enu : NewsStatusEnum.values()) {
            if (enu.name().equals(key)) {
                return enu.getValue();
            }
        }
        return null;
    }
}
